If…Then…End
La estructura del "if…then…end" es utilizada para ejecutar un comando dentro del programa si se cumple una condición dada. Si la condición no se cumple el "if" será saltado y el programa seguirá corriendo como si el "if" no existiese. Por ejemplo, sumar dos valores A y B si B es mayor que A. El formato de esta estructura es el siguiente:
«…IF test-clause THEN true-clause END…»
Esto aplicado a la situación de A y B presentada anteriormente sería:
«…IF 'B>A' THEN 'A+B' EVAL END…» o «…IF 'B>A' THEN A B + END…»
If…Then…Else…End
La estructura del "if…then…else…end" es utilizada para ejecutar un comando dentro del programa, si se cumple una condición dada. Pero si la condición no se cumple se puede ejecutar otra función. El formato es el que sigue:
«…IF test-clause THEN true-clause ELSE flase-clause END…»
En el ejemplo anterior si no se cumple la condición de que B < A, digamos que entonces restaríamos A de B. Esto sería:
«…IF 'B>A' THEN 'A+B' EVAL ELSE 'A-B' EVAL END…» o «…IF 'B>A' THEN A B + ELSE A B - END…»
Case…End
La estructura del "case…end" es utilizada para una serie de condiciones. Como por ejemplo si A < B, A > B, A = B, A≠B etc. Si no se cumpliese ninguna de las condiciones, tenemos la opción de que el case no se ejecute, o por el contrario que ejecute una acción dada. Esta última la hacemos con el default-clause. El formato es el siguiente:
CASE
Test-clause1 THEN true-clause
1 ENDTest-clause2 THEN true-clause2 END
.
.
.
test-clausen
THEN true-clausen ENDdefault-clause (opcional)
END
Ejemplo:
CASE
'A<B' THEN A B + END
'A>B' THEN A B - END
'A=B' THEN A B * END
'A≠B' THEN A B / END
END
While…Repeat…End
La estructura del "while…repeat…end" es utilizada para ejecutar una acción hasta que se cumpla una condición dada. Esto es, crear un LOOP. El formato es:
«…WHILE test-clause REPEAT loop-clause END…»
Si por ejemplo quisiéramos sumar 1 a una variable llamada a mientras a sea menor de 10, lo haríamos de la siguiente forma:
«…WHILE 'a<10' REPEAT 'a+1' EVAL END…» o «…WHILE 'a<10' REPEAT a 1 + END…»
Do…Until…End
Esta estructura es similar a la del "while" solo que esta ejecuta un comando primero y luego verifica que se cumpla la condición para continuar con el LOOP. Es decir, aunque no se cumpla la condición, aunque sea una vez, el LOOP es corrido. El formato de esta estructura es:
«…DO loop-clause UNTIL test-clause END…»
Por ejemplo, si quisiéramos sumarle 1 la variable a, mientras a sea menor que 10, pero aunque tuviese valor inicial menor que 10 queremos sumarle 1 al comenzar el programa, lo haríamos de la siguiente forma:
«…DO a 1 + UNTIL 'A<10' END…»
Como crear un programa en tu HP